package Controller;

import Model.Caja; 
import Model.Congreso; 
import Model.Gasto;
import Model.Ingreso;
import Model.Pedido;
import Servicio.Proxy; 
//import View.GastosForm; 
import java.util.ArrayList;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

public class ECajaController {

    private ArrayList<Congreso> mCongresos;
    private ArrayList<String> mMonedas;
    private ArrayList<String> mTipoGastos;
    //private GastosForm mGastosForm;
    public Congreso congreso;
    public Caja caja;
    public ArrayList<Gasto> gastos;
    public ArrayList<Ingreso> ingresos;
    public ArrayList<Pedido> pedidos;

    public ECajaController () {
    }

    public Caja getCaja(){
        return this.caja;
    }
    
    public void setCaja(Caja caja){
      this.caja=caja;
    }
    public Congreso getCongreso(){
        return congreso;
    }
    
    public ArrayList<String> getMonedas() {
        return mMonedas;
    }
    
    public void setMonedas(ArrayList<String> val) {
        this.mMonedas = val;
    }
    
    public void cargarMonedas(){
         this.setMonedas(Proxy.obtenerConjuntoExpandible(10));
        //this.mMonedas.remove(this.mMonedas.size()-1);
        
    }
    
    public ArrayList<String> getTipoGastos() {
        return mTipoGastos;
    }
    
    public void setTipoGastos(ArrayList<String> val) {
        this.mTipoGastos = val;
    }
    
    public void cargarTipoGastos(){
         this.setTipoGastos(Proxy.obtenerConjuntoExpandible(9));
        //this.mMonedas.remove(this.mMonedas.size()-1);   
    }
    
    public boolean eliminaGasto(String val){
        return Proxy.eliminaGasto(val);
    }
    
    public boolean eliminaIngreso(String val){
        return Proxy.eliminaIngreso(val);
    }
    
    public void cargadatosCombo(javax.swing.JComboBox combo, ArrayList<String> listaDato){
                combo.removeAllItems();
                combo.addItem("");
                for (int i = 0; i <  listaDato.size(); i++) {
                    combo.addItem( listaDato.get(i));
                }
    }
    
    public boolean esPlata (String saldo)
    {
    float valor;
        try{
            
            valor = Float.parseFloat(saldo);
            if (valor < 0){
                JOptionPane.showMessageDialog(new JFrame(), "Debe ingresar un valor mayor a 0.", "Atención!", JOptionPane.WARNING_MESSAGE);
                return false;
            } 
           }catch (Exception e) 
            {
            JOptionPane.showMessageDialog(new JFrame(), "Debe ingresar un valor numerico ", "Atención!", JOptionPane.WARNING_MESSAGE);
            return false;
            }
        return true;
    }
    
    public void setCongreso(Congreso val){
        this.congreso = val;
    }
    
    public ArrayList<Congreso> getCongresos () {
        return mCongresos;
    }
    
   public void setCongresos (ArrayList<Congreso> val) {
        this.mCongresos = val;
    }
   
   public  void cargarCongresos(){
        this.setCongresos(Proxy.obtenerCongresos());
        
    }
    //*cargo un congreso en base a las iniciales y la fecha*/
    public Congreso cargarCongreso (String iniciales, String fechaInicio ) {
       
        return Proxy.obtenerCongreso(iniciales, fechaInicio);
        }
  
    public Caja cargarCaja () {
        return null;
    }
  
    public void actualizarSaldoIni (Congreso cong) {
        Proxy.modificarSaldoIni(cong);
        
    }
    
    public ArrayList<Pedido> actualizarCaja(Congreso con){
       pedidos=Proxy.obtenerPedidosCaja(con);
       return pedidos;   
    }

public ArrayList<Gasto>actualizarGastos(Congreso con){
       gastos=Proxy.obtenerCaja(con).getGasto();
      return gastos;
    }

public ArrayList<Ingreso>actualizarIngresos(Congreso con){
       ingresos = Proxy.obtenerCaja(con).getIngreso();
      return ingresos;
    }

public Caja actualizarItemsCajas( Congreso con){
       caja=Proxy.obtenerCaja(con);
       return caja;
           
}
//* verifica si el valor de saldo inicial es de tipo numérico*/
public boolean esSaldo(String saldo)
    {
        try{
            Double.parseDouble(saldo);
        }catch (Exception e) 
        {
            JOptionPane.showMessageDialog(new JFrame(), "Debe ingresar un saldo válido ", "Atención!", JOptionPane.WARNING_MESSAGE);
            return false;
        }
        return true;
    }

}

